<?php

namespace app\admin\model;

use app\admin\model\CommonModel;
use Faker\Provider\Uuid;

class PayOrderModel extends CommonModel
{
    const TYPE_TALKCOIN = 0;
    const TYPE_VIP      = 1;

    const PAY_STATUS_PENDING = 0;
    const PAY_STATUS_SUCCESS = 1;

//    public static function init()
//    {
//        self::event('before_insert', function ($model) {
//            // 如果模型的 pay_order_sn 字段为空
//            if (!$model->pay_order_sn) {
//                // 调用 findAvailableNo 生成订单流水号
//                $model->pay_order_sn = static::findAvailableNo();
//                // 如果生成失败，则终止创建订单
//                if (!$model->pay_order_sn) {
//                    return false;
//                }
//            }
//        });
//    }


    public static function findAvailableNo()
    {
        // 订单流水号前缀
        $prefix = date('YmdHis');
        for ($i = 0; $i < 10; $i++) {
            // 随机生成 6 位的数字
            $pay_order_sn = $prefix . str_pad(mt_rand(0, 999999), 6, '0', STR_PAD_LEFT);
            // 判断是否已经存在
            if (!static::where('pay_order_sn', $pay_order_sn)->find()) {
                return $pay_order_sn;
            }
        }
        return false;
    }

    public function getPayTimeAttr($value)
    {
        return date('Y-m-d H:i:s', $value);
    }

}
